package Exercise;

import java.util.*;

public class test1 {
	public static void main(String[] args) {

		// 1.定义方法print1to100(),实现打印数字用逗号分隔
		print1to100();
		// 2.定义方法print1ton(),实现打印数字用逗号分隔
		print1ton(23);
		// 3.定义方法sub(), 实现计算a-b
		System.out.println(sub(2, 5));
		// 4.定义一个方法求传入值的立方
		System.out.println(cub(1024));
		// 5.传入圆半径，返回⚪面积
		System.out.println(calCircle(4));
		// 6.传入球半径，返回球体积
		System.out.println(calVolume(3, 5));
		// 7.传入n, 返回n的绝对值
		System.out.println("-5的绝对值是：" + absoluteNum(-5));
		// 8.传入n, 计算1+2+。。。+n
		System.out.println(sumNumber(20));
		// 9.传入长宽高返回立方体体积
		System.out.println(calCubeVolume(6.5, 8.5, 1.2));
		// 10.传入学生成绩,返回评级
		// 90-100优，80-89良，70-79中，60-69及格，0-59不及格
		System.out.println(studentPrice(86));
		// 11.传入一个字符，返回ascii码
		System.out.println(asciiChar('d'));
		// 12.判断三位的水仙花数
		narNumber(153);
		// 13.定义方法，传入坐标x1,x2,y1,y2计算两个点的距离(Math.sqrt())
		System.out.println(instanceNumber(2,5,1,5));
		// 14.打印1/2+1/3+。。。1/n
		n1Print(7);
		// 15.计算1/2+1/3+。。。1/n，返回结果
		System.out.println(n1Sum(6));
		// 16.传入n, n为奇数打印1/奇数至n，n为偶数打印1/偶数至n
		judgePrint(9);
		// 17.传入n, n为奇数计算1/奇数至n，n为偶数计算1/偶数至n,返回值
		System.out.println(judgeSum(3));
		// 18.传入n(n>3),打印n行的菱形
		starPrint();
		// 19.传入n(n>3),打印n行的菱形
		emptyStar();
	}

	// 1.定义方法print1to100(),实现打印数字用逗号分隔
	static void print1to100() {
		for (int i = 1; i <= 100; i++) {
			System.out.print(i + ",");
		}
		System.out.println();
	}

	// 2.定义方法print1ton(),实现打印数字用逗号分隔
	static void print1ton(int n) {
		for (int i = 1; i <= n; i++) {
			System.out.print(i + ", ");
		}
		System.out.println();
	}

	// 3.定义方法sub(), 实现计算a-b
	static int sub(int a, int b) {
		return a - b;
	}

	// 4.定义一个方法求传入值的立方
	static int cub(int n) {
		return n * n * n;
	}

	// 5.传入圆半径，返回⚪面积
	static double calCircle(double r) {
		return Math.PI * r * r;
	}

	// 6.传入球半径，返回球体积
	static double calVolume(double r, double h) {
		return Math.PI * r * r * h;
	}

	// 7.传入n, 返回n的绝对值
	static int absoluteNum(int num) {
		return Math.abs(num);
	}

	// 8.传入n, 计算1+2+。。。+n
	static int sumNumber(int n) {
		int sum = 0;
		for (int i = 1; i <= n; i++) {
			sum = sum + i;
		}
		return sum;
	}

	// 9.传入长宽高返回立方体体积
	static double calCubeVolume(double a, double b, double c) {
		return a * b * c;
	}

	// 10.传入学生成绩,返回评级
	// 90-100优，80-89良，70-79中，60-69及格，0-59不及格
	static String studentPrice(int studentScore) {
		String grade;
		switch (studentScore / 10) {
		case 9:
			grade = "优";
			break;
		case 8:
			grade = "良";
			break;
		case 7:
			grade = "中";
			break;
		case 6:
			grade = "及格";
			break;
		default:
			grade = "不及格";
		}
		return grade;
	}
	
	// 11.传入一个字符，返回ascii码
	static int asciiChar(char d) {
		int ascii=d;
		return ascii;
		
	}
	
	// 12.三位的水仙花数
	static void narNumber(int num) {
		int a,b,c;
		a=num/100;
		b=num/10%10;
		c=num%10;
		if(a*a*a+b*b*b+c*c*c==num) {
			System.out.println(num+"是三位水仙花数");
		}
		else {
			System.out.println(num+"不是三位水仙花数");
		}
	}
	
	// 13.定义方法，传入坐标x1,x2,y1,y2计算两个点的距离(Math.sqrt())
	static double instanceNumber(double x1,double x2,double y1,double y2) {
		double x=Math.abs(x1-x2),y=Math.abs(y1-y2);
		return Math.sqrt(x*x+y*y);
	}
	
	// 14.打印1/2+1/3+。。。1/n
	static void n1Print(int n) {
		int i;
		for(i=2;i<=n;i++) {
			System.out.print("1/"+i);
			if(i==n) {
				System.out.println();
				break;
			}
			else{
				System.out.print("+");
			}
		}
	}
	
	// 15.计算1/2+1/3+。。。1/n，返回结果
	static double n1Sum(int n) {
		double sum=0.0;
		for(double i=2;i<=n;i++) {
			sum=sum+1.0/i;
		}
		return sum;
	}
	
	// 16.传入n, n为奇数打印1/奇数至n，n为偶数打印1/偶数至n
	static void judgePrint(int n) {
		if(n%2==0) {
			int i;
			for(i=2;i<=n;i+=2) {
				System.out.print("1/"+i);
				if(i==n) {
					System.out.println();
					break;
				}
				else{
					System.out.print("+");
				}
			}
		}
		else {
			int i;
			for(i=3;i<=n;i+=2) {
				System.out.print("1/"+i);
				if(i==n) {
					System.out.println();
					break;
				}
				else{
					System.out.print("+");
				}
			}
		}
	}
	
	// 17.传入n, n为奇数计算1/奇数至n，n为偶数计算1/偶数至n
	static double judgeSum(int n) {
		double sum=0;
		if(n%2==0) {
			for(double i=2;i<=n;i++) {
				sum=sum+1.0/i;
			}
		}
		else {
			for(double i=2;i<=n;i++) {
				sum=sum+1.0/i;
			}
		}
		return sum;
	}
	
	// 18.传入n(n>3),打印n行的菱形
	static void starPrint(){
		Scanner sc=new Scanner(System.in);
	    System.out.println("请输入要打印的菱形行上三角行数！");
	    int line=sc.nextInt();
	    for(int i=1;i<=line;i++){
	        for(int j=1;j<=line-i;j++){
	            System.out.print(" ");
	        }
	        for(int t=1;t<=2*i-1;t++){
	            System.out.print("*");
	        }
	        System.out.println();
	    }
	    //下三角
	    for(int i=line-1;i>=1;i--){
	        for(int j=1;j<=line-i;j++){
	            System.out.print(" ");
	        }
	        for(int t=1;t<=2*i-1;t++){
	            System.out.print("*");
	        }
	        System.out.println();
	    }
	}
	
	// 19.传入n(n>3),打印n行的菱形
	static void emptyStar() {
		Scanner sc=new Scanner(System.in);
	    System.out.println("请输入要打印的菱形行上三角行数！");
	    int line=sc.nextInt();
	    for(int i=1;i<=line;i++){
	        for(int j=1;j<=line-i;j++){
	            System.out.print(" ");
	        }
	        for(int t=1;t<=2*i-1;t++){
	        	if((t==1)||(t==2*i-1))
	            	System.out.print("*");
	        	else
	        		System.out.print(" ");
	        }
	        System.out.println();
	    }
	    //下三角
	    for(int i=line-1;i>=1;i--){
	        for(int j=1;j<=line-i;j++){
	            System.out.print(" ");
	        }
	        for(int t=1;t<=2*i-1;t++){
	        	if((t==1)||(t==2*i-1))
	            	System.out.print("*");
	        	else
	        		System.out.print(" ");
	        }
	        System.out.println();
	    }
	    sc.close();
	}
}
